package com.apiauto.data_util;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

import com.alibaba.fastjson.JSONObject;
import com.apiauto.pojo.DBChecker;
import com.apiauto.pojo.DBQueryResult;
import com.apiauto.util.JDBCUtil;

/**
 * PS:数据库校验工具类
 * @author lkk
 *
 */
public class DBCheckUtil {
	/**
	 * PS:执行sql语句查询结果
	 * @param checkExcuteSql 查询语句
	 * @return 结果字符串
	 */
	public static String doQuery(String checkExcuteSql) {
		//将表格中的json字符串转为实体类集合对象
		List<DBChecker> dbCheckerList = JSONObject.parseArray(checkExcuteSql, DBChecker.class);
		//存储返回结果实体类集合
		List<DBQueryResult> dbQueryResultList = new ArrayList<DBQueryResult>();
		//遍历条件实体类集合,使用该集合中的对象sql字段数据查询得到
		for(DBChecker dbChecker:dbCheckerList) {
			//获取编号
			String no = dbChecker.getNo();
			//获取sql语句
			String sql = dbChecker.getSql();
			//执行sql语句查询结果
			Map<String,Object> columnLabelAndValues = JDBCUtil.query(sql);
			//新建查询结果对象
			DBQueryResult dbQueryResult = new DBQueryResult();
			//设置编号
			dbQueryResult.setNo(no);
			//设置返回结果
			dbQueryResult.setColumnLabelAndValues(columnLabelAndValues);
			//将查询结果塞入集合
			dbQueryResultList.add(dbQueryResult);
		}
		//以json字符串的形式返回结果
		return JSONObject.toJSONString(dbQueryResultList);
	}
}
